{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notes:\n",
    " * tuned fresh and trained on toi data, with toi examples in the validation set\n",
    " * added some of the scalar features into the vetting primry input\n",
    " * added secondary and local views to the vetting primary input"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/mnt/tess/astronet/checkpoints/direct_7_run_4/1/AstroCNNModelVetting_direct_20211118_205834',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/2/AstroCNNModelVetting_direct_20211118_210538',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/3/AstroCNNModelVetting_direct_20211118_211225',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/4/AstroCNNModelVetting_direct_20211118_211916',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/5/AstroCNNModelVetting_direct_20211118_212613',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/6/AstroCNNModelVetting_direct_20211118_213305',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/7/AstroCNNModelVetting_direct_20211118_213951',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/8/AstroCNNModelVetting_direct_20211118_214633',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/9/AstroCNNModelVetting_direct_20211118_215312',\n",
       " '/mnt/tess/astronet/checkpoints/direct_7_run_4/10/AstroCNNModelVetting_direct_20211118_215956']"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "chkpt_root = '/mnt/tess/astronet/checkpoints/direct_7_run_4'\n",
    "data_files = '/mnt/tess/astronet/tfrecords-vetting-7-toi-val/*'\n",
    "tces_file = '/mnt/tess/astronet/tces-vetting-v5-toi-val.csv'\n",
    "\n",
    "nruns = 10\n",
    "\n",
    "def load_ensemble(chkpt_root, nruns):\n",
    "    checkpts = []\n",
    "    for i in range(nruns):\n",
    "        parent = os.path.join(chkpt_root, str(i + 1))\n",
    "        if not os.path.exists(parent):\n",
    "            break\n",
    "        all_dirs = os.listdir(parent)\n",
    "        if not all_dirs:\n",
    "            break\n",
    "        d, = all_dirs\n",
    "        checkpts.append(os.path.join(parent, d))\n",
    "    return checkpts\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "paths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running model 1\n",
      "354 records\n",
      "Running model 2\n",
      "354 records\n",
      "Running model 3\n",
      "354 records\n",
      "Running model 4\n",
      "354 records\n",
      "Running model 5\n",
      "354 records\n",
      "Running model 6\n",
      "354 records\n",
      "Running model 7\n",
      "354 records\n",
      "Running model 8\n",
      "354 records\n",
      "Running model 9\n",
      "354 records\n",
      "Running model 10\n",
      "354 records\n"
     ]
    }
   ],
   "source": [
    "import getpass\n",
    "import os\n",
    "from astronet import predict\n",
    "import tensorflow as tf\n",
    "\n",
    "\n",
    "def run_predictions(path):\n",
    "    predict.FLAGS = predict.parser.parse_args([\n",
    "      '--model_dir', path,\n",
    "      '--data_files', data_files,\n",
    "      '--output_file', '',\n",
    "    ])\n",
    "\n",
    "    return predict.predict()\n",
    "\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "ensemble_preds = []\n",
    "config = None\n",
    "for i, path in enumerate(paths):\n",
    "    print(f'Running model {i + 1}')\n",
    "    preds, config = run_predictions(path)\n",
    "    ensemble_preds.append(preds.set_index('tic_id'))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['disp_p', 'disp_e', 'disp_n']\n",
    "\n",
    "col_p = labels.index('disp_p')\n",
    "# thresh = 0.1579816417694639\n",
    "thresh = 0.99"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "all_preds_table = ensemble_preds[0].copy()\n",
    "all_preds_table['model'] = 0\n",
    "\n",
    "for i in range(len(ensemble_preds[1:])):\n",
    "    tmp = ensemble_preds[i].copy()\n",
    "    tmp['model'] = i\n",
    "    all_preds_table = all_preds_table.append(tmp)\n",
    "    \n",
    "all_preds_table.to_csv('toi_ensemble_preds.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "agg_preds = {}\n",
    "\n",
    "mean_preds = preds.groupby(['tic_id']).mean()\n",
    "\n",
    "# for tic_id in mean_preds.index:\n",
    "#     agg_preds[tic_id] = []\n",
    "\n",
    "#     row = mean_preds[mean_preds.index == tic_id]\n",
    "#     pred_v = row.values[0]\n",
    "#     if len(row.values) > 1:\n",
    "#         print(f'Warning: duplicate predictions for {tic_id}')\n",
    "#     if pred_v[col_p] >= thresh:\n",
    "#         agg_preds[tic_id].append('disp_p')\n",
    "#     else:\n",
    "#         agg_preds[tic_id].append(mean_preds.columns[np.argmax(pred_v)])\n",
    "\n",
    "for preds in ensemble_preds:\n",
    "    for tic_id in mean_preds.index:\n",
    "        if tic_id not in agg_preds:\n",
    "            agg_preds[tic_id] = []\n",
    "\n",
    "        row = preds[preds.index == tic_id]\n",
    "        pred_v = row.values[0]\n",
    "        if len(row.values) > 1:\n",
    "            print(f'Warning: duplicate predictions for {tic_id}')\n",
    "        if pred_v[col_p] >= thresh:\n",
    "            agg_preds[tic_id].append('disp_p')\n",
    "        else:\n",
    "            agg_preds[tic_id].append(preds.columns[np.argmax(pred_v)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_preds = []\n",
    "for tic_id in list(agg_preds.keys()):\n",
    "    counts = {l: 0 for l in labels}\n",
    "    for e in agg_preds[tic_id]:\n",
    "        counts[e] += 1\n",
    "    maxcount = max(counts.values())\n",
    "    counts.update({\n",
    "        'tic_id': tic_id,\n",
    "        'maxcount': maxcount,\n",
    "    })\n",
    "    final_preds.append(counts)\n",
    "    \n",
    "final_preds = pd.DataFrame(final_preds).set_index('tic_id')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "tce_table = pd.read_csv(tces_file, header=0).set_index('tic_id')\n",
    "tce_labels = tce_table[labels]\n",
    "\n",
    "pl = final_preds.join(tce_labels, on='tic_id', how='left', lsuffix='_p')\n",
    "\n",
    "pl.head()\n",
    "pd.set_option('display.max_columns', None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall: 1.0\n",
      "Precision: 0.8114285714285714\n"
     ]
    }
   ],
   "source": [
    "ppos = (pl['disp_p_p'] > 0)\n",
    "pos = (pl['disp_p'] > 0)\n",
    "\n",
    "pneg = (pl['disp_p_p'] == 0)\n",
    "neg = (pl['disp_p'] == 0)\n",
    "\n",
    "print('Recall:', len(pl[ppos & pos]) / len(pl[pos]))\n",
    "print('Precision:', len(pl[ppos & pos]) / len(pl[ppos]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i in pl[pos & pneg][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2234723\n",
      "23826331\n",
      "24004619\n",
      "24491836\n",
      "30275619\n",
      "74934381\n",
      "98350979\n",
      "119774374\n",
      "137778682\n",
      "149854222\n",
      "255994336\n",
      "271903247\n",
      "276645751\n",
      "276936320\n",
      "278225267\n",
      "278866211\n",
      "280095254\n",
      "304729846\n",
      "307153959\n",
      "321828403\n",
      "326974824\n",
      "344978642\n",
      "365494323\n",
      "372222115\n",
      "380783252\n",
      "384068226\n",
      "384744828\n",
      "388076435\n",
      "424876542\n",
      "457138169\n",
      "469782185\n",
      "1715469662\n",
      "1715469667\n"
     ]
    }
   ],
   "source": [
    "for i in pl[neg & ppos][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_p</th>\n",
       "      <th>disp_e</th>\n",
       "      <th>disp_n</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.971236</td>\n",
       "      <td>0.028503</td>\n",
       "      <td>0.000261</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.960020</td>\n",
       "      <td>0.039369</td>\n",
       "      <td>0.000612</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.970323</td>\n",
       "      <td>0.029323</td>\n",
       "      <td>0.000353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.912936</td>\n",
       "      <td>0.086437</td>\n",
       "      <td>0.000626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.856006</td>\n",
       "      <td>0.142932</td>\n",
       "      <td>0.001062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.958365</td>\n",
       "      <td>0.040665</td>\n",
       "      <td>0.000970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.939888</td>\n",
       "      <td>0.059222</td>\n",
       "      <td>0.000890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.954498</td>\n",
       "      <td>0.044676</td>\n",
       "      <td>0.000826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.941109</td>\n",
       "      <td>0.057901</td>\n",
       "      <td>0.000989</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1129033</th>\n",
       "      <td>0.948160</td>\n",
       "      <td>0.051284</td>\n",
       "      <td>0.000556</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           disp_p    disp_e    disp_n\n",
       "tic_id                               \n",
       "1129033  0.971236  0.028503  0.000261\n",
       "1129033  0.960020  0.039369  0.000612\n",
       "1129033  0.970323  0.029323  0.000353\n",
       "1129033  0.912936  0.086437  0.000626\n",
       "1129033  0.856006  0.142932  0.001062\n",
       "1129033  0.958365  0.040665  0.000970\n",
       "1129033  0.939888  0.059222  0.000890\n",
       "1129033  0.954498  0.044676  0.000826\n",
       "1129033  0.941109  0.057901  0.000989\n",
       "1129033  0.948160  0.051284  0.000556"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def compare(ensemble_preds, filter):\n",
    "    result = ensemble_preds[0][filter]\n",
    "    for preds in ensemble_preds[1:]:\n",
    "        result = result.append(preds[filter])\n",
    "    return result\n",
    "\n",
    "compare(ensemble_preds, preds.index == 1129033)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PR curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "tics = set(ensemble_preds[0].index.values)\n",
    "\n",
    "tic_index = {v: i for i, v in enumerate(tics)}\n",
    "\n",
    "pred_ps = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "pred_es = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "pred_ns = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "for i, preds in enumerate(ensemble_preds):\n",
    "    for row in preds.iterrows():\n",
    "        tic, pred_p = row[0], row[1][col_p]\n",
    "        pred_ps[i][tic_index[tic]] = pred_p\n",
    "        pred_es[i][tic_index[tic]] = row[1][labels.index('disp_e')]\n",
    "        pred_ns[i][tic_index[tic]] = row[1][labels.index('disp_n')]\n",
    "\n",
    "lbl_ps = np.zeros([len(tic_index)], dtype=np.bool)\n",
    "bad_labels = []\n",
    "for row in tce_labels.iterrows():\n",
    "    tic, lbl_p = row[0], row[1]['disp_p']\n",
    "    if tic in tic_index:\n",
    "        lbl_ps[tic_index[tic]] = (lbl_p > 0)\n",
    "    else:\n",
    "        bad_labels.append(tic)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_cond_pos = float(np.sum(lbl_ps))\n",
    "\n",
    "def pr_at_th(th):\n",
    "    pred_pos = np.any(pred_ps >= th, axis=0)\n",
    "    true_pos = pred_pos & lbl_ps\n",
    "    num_pred_pos = int(np.sum(pred_pos))\n",
    "    num_true_pos = int(np.sum(true_pos))\n",
    "    if num_pred_pos == 0:\n",
    "        return 1.0, 0.0\n",
    "    return float(num_true_pos) / float(num_pred_pos), float(num_true_pos) / float(num_cond_pos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.9662736159214871, max R: 1.0, max P: 1.0\n",
      "100% recall at: 81%, threshold: 0.5564996423721802\n"
     ]
    },
    {
     "data": {
      "image/png": "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XlDKpEdEtALT891HBuubUnouItqBKcCMGsxlZ+CIfPeulNKIkh4XXHDBKvt8+MMffmF72rTsZjRLlixhxYreF5e0trYyadIkOjs76ejo6NU2ceJEJk+eTEqpavZ6ypQpTJgwgaVLl7J8ee9cUktLC83NzXR1dbFs2bJebRMmTGDKlCkALFq0qN9xJ0+ezMSJE1m2bBldXV292pqbm2lpaWH58uUsXbq0V1tEMHVqdgOdxYsX97vMsK2tjaamJjo6Oujs7OzVNmnSJFpbW1mxYgVLlizpN6een2F7ezvd3d292gb7GTY1NdHW1kZ3d3fVK3SmTp1KRFT93Qz2M+z53UD1n+Fgv5vBfoaVv5tqP8Oe381wf4aVv5tqP8Oe301nZ+cLr+15Xp2fYc/vZrCf4erE9+r8DAeL79X5GVb73azqZ+g5IlPPc0TPMTo6Opg2bZrniGGcI0bzPOs5IlOrc0TPzzSlNOw4LPs5oofvIzINP0dsNJtlb/49k+44j5brvkJ09v6ZTW1/CC48mq7tXk/H/p8kTVnPc0Sfn6HvI8bvOWK8XcVUyqQHUHn72aH8xnqSHlNX1XE4IqIF+D7ZnVsgu2Vuzdx2220vbB9wQHZxyZw5c/r9w99mm23YYIMNeOqpp7jvvvt6ta299trstNNOrFixotfxeuy11140Nzdz//3388wzz/Rq22KLLZgxYwYLFizg3nt7r+06depUZs2aBcDtt9/e74Qxe/ZspkyZwrx583j88cd7tc2YMYMtttiCxYsX8/e//71XW3NzM3vttRcAd911V7+Tzc4778xaa63Fo48+yvz583u1bbjhhmy99dYsW7as3/caEey///5A9jPs+w9/u+22Y7311uOJJ57ggQce6NW27rrrssMOO7B8+fKqP8N99tmHpqYm7rvvPp577rlebTNnzmTjjTfm2WefZc6cOb3apk2bxm677QZQ9bh77LEHbW1tPPTQQzz55JO92jbddFM222wzFi5cyF133dWrrbW1lZe+9KUA3Hnnnf3+I9hll11Yc801mT9/Po8++mivto022oiXvOQlLFmypN+cJk6cyL77ZlVm9957b7+T/fbbb8/06dN5/PHHefDBBwFe+J6nT5/O9ttvT1dXV9Xvdb/99iMimDt3Ls8//3yvtq222ooXvehFPP3008ydO7dX25prrskuu+xCSqnq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\n",
      "text/plain": [
       "<Figure size 1200x740 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "ps, rs, ths = ([], [], [])\n",
    "th = np.max(pred_ps)\n",
    "while th >= 0.0:\n",
    "    p, r = pr_at_th(th)\n",
    "    if p > 0:\n",
    "        ps.append(p)\n",
    "        rs.append(r)\n",
    "    else:\n",
    "        ps.append(1.0)\n",
    "        rs.append(0.0)\n",
    "    ths.append(th)\n",
    "    th -= 0.0005\n",
    "    \n",
    "from sklearn import metrics\n",
    "\n",
    "print(f'AUC: {metrics.auc(rs, ps)}, max R: {max(rs)}, max P: {max(ps)}')\n",
    "    \n",
    "i = len(rs) - 1\n",
    "while rs[i] == 1.0:\n",
    "    i -= 1\n",
    "i += 1\n",
    "print(f'100% recall at: {int(ps[i] * 100)}%, threshold: {ths[i]}')\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(6, 3.7), dpi=200)\n",
    "\n",
    "ax.spines['top'].set_color('#808080')\n",
    "ax.spines['right'].set_color('#808080')\n",
    "ax.spines['left'].set_color('#808080')\n",
    "ax.spines['bottom'].set_color('#808080')\n",
    "ax.tick_params(direction='in', color='#808080')\n",
    "\n",
    "plt.grid(color='#c0c0c0', linestyle='--', linewidth=0.5)\n",
    "\n",
    "plt.ylabel('Precision', fontweight='bold')\n",
    "plt.xlabel('Recall', fontweight='bold')\n",
    "\n",
    "plt.xlim((0.0, 1.0))\n",
    "plt.ylim((0.0, 1.0))\n",
    "\n",
    "_ = plt.plot(rs, ps, marker='.')\n",
    "_ = plt.plot([0.0, 1.0], [1.0, 0.0])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
